<rd-header>
  <rd-header-title title="Service details">
    <a data-toggle="tooltip" title="Refresh" ui-sref="service({id: service.Id})" ui-sref-opts="{reload: true}">
      <i class="fa fa-refresh" aria-hidden="true"></i>
    </a>
    <i id="loadingViewSpinner" class="fa fa-cog fa-spin"></i>
  </rd-header-title>
  <rd-header-content>
    <a ui-sref="services">Services</a> &gt; <a ui-sref="service({id: service.Id})">{{ service.Name }}</a>
  </rd-header-content>
</rd-header>

<div class="row">
  <div ng-if="isUpdating" class="col-lg-12 col-md-12 col-xs-12">
    <div class="alert alert-info" role="alert" id="service-update-alert">
      <p>This service is being updated. Editing this service is currently disabled.</p>
      <a ui-sref="service({id: service.Id}, {reload: true})">Refresh to see if this service has finished updated.</a>
    </div>
  </div>
</div>

<div class="row">
  <div class="col-lg-9 col-md-9 col-xs-9">
    <rd-widget>
      <rd-widget-header icon="fa-list-alt" title="Service details"></rd-widget-header>
      <rd-widget-body classes="no-padding">
        <table class="table">
          <tbody>
            <tr>
              <td>Name</td>
              <td ng-if="applicationState.endpoint.apiVersion <= 1.24">
                <input type="text" class="form-control" ng-model="service.Name" ng-change="updateServiceAttribute(service, 'Name')" ng-disabled="isUpdating">
              </td>
              <td ng-if="applicationState.endpoint.apiVersion >= 1.25">
                {{ service.Name }}
              </td>
            </tr>
            <tr>
              <td>ID</td>
              <td>
                {{ service.Id }}
                <button class="btn btn-xs btn-danger" ng-click="removeService()"><i class="fa fa-trash space-right" aria-hidden="true" ng-disabled="isUpdating"></i>Delete this service</button>
              </td>
            </tr>
            <tr ng-if="service.CreatedAt">
              <td>Created at</td>
              <td>{{ service.CreatedAt|getisodate}}</td>
            </tr>
            <tr ng-if="service.UpdatedAt">
              <td>Last updated at</td>
              <td>{{ service.UpdatedAt|getisodate }}</td>
            </tr>
            <tr ng-if="service.Version">
              <td>Version</td>
              <td>{{ service.Version }}</td>
            </tr>
            <tr>
              <td>Scheduling mode</td>
              <td>{{ service.Mode }}</td>
            </tr>
            <tr ng-if="service.Mode === 'replicated'">
              <td>Replicas</td>
              <td>
                <span ng-if="service.Mode === 'replicated'">
                  <input class="input-sm" type="number" ng-model="service.Replicas" ng-change="updateServiceAttribute(service, 'Replicas')" ng-disabled="isUpdating" />
                </span>
              </td>
            </tr>
            <tr>
              <td>Image</td>
              <td>
                <input type="text" class="form-control" ng-model="service.Image" ng-change="updateServiceAttribute(service, 'Image')" ng-disabled="isUpdating" />
              </td>
            </tr>
            <tr ng-if="applicationState.endpoint.apiVersion >= 1.30">
              <td colspan="2">
                <div class="btn-group" role="group" aria-label="...">
                  <a class="btn btn-outline-secondary" type="button" ui-sref="servicelogs({id: service.Id})"><i class="fa fa-exclamation-circle space-right" aria-hidden="true"></i>Logs</a>
                </div>
              </td>
            </tr>
          </tbody>
        </table>
      </rd-widget-body>
      <rd-widget-footer>
        <p class="small text-muted">
          Do you need help? View the Docker Service documentation <a href="https://docs.docker.com/engine/reference/commandline/service_update/" target="self">here</a>.
        </p>
        <div class="btn-toolbar" role="toolbar">
          <div class="btn-group" role="group">
            <button type="button" class="btn btn-primary" ng-disabled="!hasChanges(service, ['Mode', 'Replicas', 'Image', 'Name'])" ng-click="updateService(service)">Apply changes</button>
            <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
              <span class="caret"></span>
            </button>
            <ul class="dropdown-menu">
              <li><a ng-click="cancelChanges(service, ['Mode', 'Replicas', 'Image', 'Name'])">Reset changes</a></li>
              <li><a ng-click="cancelChanges(service)">Reset all changes</a></li>
            </ul>
          </div>
        </div>
      </rd-widget-footer>
    </rd-widget>
  </div>

  <div class="col-lg-3 col-md-3 col-xs-3">
    <rd-widget>
      <rd-widget-header icon="fa-bars" title="Quick navigation"></rd-widget-header>
      <rd-widget-body classes="no-padding">
        <ul class="nav nav-pills nav-stacked">
          <li><a href ng-click="goToItem('service-env-variables')">Environment variables</a></li>
          <li><a href ng-click="goToItem('service-container-labels')">Container labels</a></li>
          <li><a href ng-click="goToItem('service-mounts')">Mounts</a></li>
          <li><a href ng-click="goToItem('service-network-specs')">Network &amp; published ports</a></li>
          <li><a href ng-click="goToItem('service-resources')">Resource limits &amp; reservations</a></li>
          <li><a href ng-click="goToItem('service-placement-constraints')">Placement constraints</a></li>
          <li><a href ng-click="goToItem('service-placement-preferences')" ng-if="applicationState.endpoint.apiVersion >= 1.30">Placement preferences</a></li>
          <li><a href ng-click="goToItem('service-restart-policy')">Restart policy</a></li>
          <li><a href ng-click="goToItem('service-update-config')">Update configuration</a></li>
          <li><a href ng-click="goToItem('service-labels')">Service labels</a></li>
          <li><a href ng-click="goToItem('service-secrets')">Secrets</a></li>
          <li><a href ng-click="goToItem('service-tasks')">Tasks</a></li>
        </ul>
      </rd-widget-body>
    </rd-widget>
  </div>
</div>

<!-- access-control-panel -->
<por-access-control-panel
  ng-if="service && applicationState.application.authentication"
  resource-control="service.ResourceControl"
  resource-type="'service'">
</por-access-control-panel>
<!-- !access-control-panel -->

<div class="row">
  <hr>
  <div class="col-lg-12 col-md-12 col-xs-12">
    <h3 id="container-specs">Container specification</h3>
    <div id="service-container-spec" class="padding-top" ng-include="'app/components/service/includes/container-specs.html'"></div>
    <div id="service-env-variables" class="padding-top" ng-include="'app/components/service/includes/environmentvariables.html'"></div>
    <div id="service-container-labels" class="padding-top" ng-include="'app/components/service/includes/containerlabels.html'"></div>
    <div id="service-mounts" class="padding-top" ng-include="'app/components/service/includes/mounts.html'"></div>
  </div>
</div>

<div class="row">
  <hr>
  <div class="col-lg-12 col-md-12 col-xs-12">
    <h3 id="service-network-specs">Networks &amp; ports</h3>
    <div id="service-networks" class="padding-top" ng-include="'app/components/service/includes/networks.html'"></div>
    <div id="service-published-ports" class="padding-top" ng-include="'app/components/service/includes/ports.html'"></div>
  </div>
</div>

<div class="row">
  <hr>
  <div class="col-lg-12 col-md-12 col-xs-12">
    <h3 id="service-specs">Service specification</h3>
    <div id="service-resources" class="padding-top" ng-include="'app/components/service/includes/resources.html'"></div>
    <div id="service-placement-constraints" class="padding-top" ng-include="'app/components/service/includes/constraints.html'"></div>
    <div id="service-placement-preferences" class="padding-top" ng-include="'app/components/service/includes/placementPreferences.html'"></div>
    <div id="service-restart-policy" class="padding-top" ng-include="'app/components/service/includes/restart.html'"></div>
    <div id="service-update-config" class="padding-top" ng-include="'app/components/service/includes/updateconfig.html'"></div>
    <div id="service-labels" class="padding-top" ng-include="'app/components/service/includes/servicelabels.html'"></div>
    <div id="service-secrets" class="padding-top" ng-include="'app/components/service/includes/secrets.html'"></div>
    <div id="service-tasks" class="padding-top" ng-include="'app/components/service/includes/tasks.html'"></div>
  </div>
</div>
